package com.expert.miniapp.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Size;
import lombok.Data;

/**
 * UpdateProfileRequest - 更新用户信息请求DTO
 * 用于更新用户的个人资料
 *
 * @author System
 * @since 2025-01-14
 */
@Data
public class UpdateProfileRequest {

    /**
     * 昵称
     */
    @JsonProperty("nickname")
    @Size(max = 100, message = "昵称长度不能超过100个字符")
    private String nickname;

    /**
     * 头像URL
     */
    @JsonProperty("avatarUrl")
    @Size(max = 500, message = "头像URL长度不能超过500个字符")
    private String avatarUrl;

    /**
     * 手机号
     */
    @JsonProperty("phone")
    @Size(max = 20, message = "手机号长度不能超过20个字符")
    private String phone;

    /**
     * 邮箱
     */
    @JsonProperty("email")
    @Email(message = "邮箱格式不正确")
    @Size(max = 255, message = "邮箱长度不能超过255个字符")
    private String email;

    /**
     * 组织名称
     */
    @JsonProperty("orgName")
    @Size(max = 255, message = "组织名称长度不能超过255个字符")
    private String orgName;

    /**
     * 组织规模
     */
    @JsonProperty("orgSize")
    @Size(max = 50, message = "组织规模长度不能超过50个字符")
    private String orgSize;

    /**
     * 地区城市
     */
    @JsonProperty("regionCity")
    @Size(max = 100, message = "地区城市长度不能超过100个字符")
    private String regionCity;

    /**
     * 组织角色
     */
    @JsonProperty("orgRole")
    @Size(max = 50, message = "组织角色长度不能超过50个字符")
    private String orgRole;
}
